package com.ruoyi.mapper;

import java.util.List;
import java.util.Map;

import com.ruoyi.domain.BasisUav;
import com.ruoyi.dto.BasisLoadingUavCamp;
import org.apache.ibatis.annotations.Param;

/**
 * 无人机Mapper接口
 * 
 * @author wangzebing
 * @date 2025-05-24
 */
public interface BasisUavMapper 
{
    /**
     * 查询无人机
     * 
     * @param uavId 无人机主键
     * @return 无人机
     */
    public BasisUav selectBasisUavByUavId(Long uavId);

    /**
     * 查询无人机列表
     * 
     * @param basisUav 无人机
     * @return 无人机集合
     */
    public List<BasisUav> selectBasisUavList(BasisUav basisUav);

    /**
     * 新增无人机
     * 
     * @param basisUav 无人机
     * @return 结果
     */
    public int insertBasisUav(BasisUav basisUav);

    /**
     * 修改无人机
     * 
     * @param basisUav 无人机
     * @return 结果
     */
    public int updateBasisUav(BasisUav basisUav);

    /**
     * 删除无人机
     * 
     * @param uavId 无人机主键
     * @return 结果
     */
    public int deleteBasisUavByUavId(Long uavId);

    /**
     * 批量删除无人机
     * 
     * @param uavIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBasisUavByUavIds(Long[] uavIds);

    public List<BasisLoadingUavCamp> findByLoadingIdAndCampId(@Param("loadingId") String loadingId,@Param("campId") Integer campId,@Param("positionId") Integer positionId);

    public List<BasisLoadingUavCamp> findByLoadingIdAndCampId2(@Param("loadingId") String loadingId,@Param("campId") Integer campId);

    public List<BasisLoadingUavCamp> findByLoadingIdAndCampIdDT(@Param("loadingId") String loadingId,@Param("campId") Integer campId,@Param("positionId") Integer positionId);

    public List<BasisLoadingUavCamp> findByLoadingIdAndCampIdDT2(@Param("loadingId") String loadingId,@Param("campId") Integer campId);

    boolean addBasisLoadingUavCamp(BasisLoadingUavCamp basisLoadingUavCamp);

    boolean addBasisLoadingUavCampDt(BasisLoadingUavCamp basisLoadingUavCamp);

    boolean updateBasisLoadingUavCamp(BasisLoadingUavCamp basisLoadingUavCamp);

    boolean updateBasisLoadingUavCampDt(BasisLoadingUavCamp basisLoadingUavCamp);


    boolean delBasisLoadingUavCamp(@Param("loadingId") String loadingId,@Param("uavId") Integer uavId);

    Map<String,Object> fidnByBasisLoadingUavCamp(@Param("loadingId") String loadingId, @Param("uavId") Integer uavId);

    Map<String,Object> fidnByBasisLoadingUavCampDT(@Param("loadingId") String loadingId, @Param("uavId") Integer uavId);

    //根据案例id查询 没有跟当前案例相关联的目标
    public List<BasisUav> selectBasisUavLoading(@Param("loadingId") String loadingId);

    public List<BasisUav> selectBasisUavLoadingDT(@Param("loadingId") String loadingId);
}
